package com.loukou.lkt.lkt.service;

import java.util.List;

import com.loukou.lkt.lkt.req.PoPurchaseOrderDetailReqDto;
import com.loukou.lkt.lkt.req.PurchaseOrderReqDto;
import com.loukou.lkt.lkt.req.WmsInOrderCallbackReq;
import com.loukou.lkt.lkt.resp.PageModel;
import com.loukou.lkt.lkt.resp.PoPurchaseOrderDetailRespDto;
import com.loukou.lkt.lkt.resp.PoPurchaseOrderGoodsDto;
import com.loukou.lkt.lkt.resp.PurchaseGoodsHistoryPriceDto;
import com.loukou.lkt.lkt.resp.PurchaseOrderListDto;
import com.loukou.lkt.lkt.resp.RespDto;


public interface PoPurchaseOrderService {
	
	/**
	 * @param 
	 * @return 采购供应商列表(采购首页列表)
	 */
	public RespDto<List<PurchaseOrderListDto>> getSupplierOrdersInfo(int userId);
	
	/**
	 * 
	 * @param supplierName 根据供应商name模糊查找
	 * @param pageNum
	 * @param pageSize
	 * @return 首页根据供应商name模糊查找
	 */
	public RespDto<List<PurchaseOrderListDto>> getSupplierOrdersInfoBySupplierName(
			String supplierName);
	
	/**
	 * 
	 * @param supplierCode
	 * @param pageNum
	 * @param pageSize
	 * @return 首页根据供应商code模糊查找
	 */
	public RespDto<List<PurchaseOrderListDto>> getSupplierOrdersInfoBySupplierCode(
			String supplierCode);
	
	public RespDto<PageModel<PurchaseGoodsHistoryPriceDto>> getGoodsPurchaseHistoryByTaosku(
			String taosku, String bn, String goodsName, int pageNum, int pageSize);
	
	/**
	 * 采购，获取供应商商品
	 * @return
	 */
	public PoPurchaseOrderDetailRespDto getSupplierGoodsInfo(int supplierId, int warehouseId);
	
	/**
     * LKT将采购单传给WMS
     * @param allocationOrderResp
     * @return
     */
    public RespDto<String> sendPurchaseOrderToWms(int purchaseOrderId);
	
	/**
	 * 更新采购单
	 * @param req
	 * @return
	 */
	public RespDto<String> updatePurchase(int stockInOrderId,WmsInOrderCallbackReq req);

	/**
	 * 
	 * @param dto
	 * @return 提交采购单
	 */
	public RespDto<String> submitPurchaseOrder(PurchaseOrderReqDto dto);
	
	public PoPurchaseOrderDetailRespDto getPurchaseOrderDetail(String orderCode);
	
	public RespDto<String> editPurchaseOrder(PoPurchaseOrderDetailReqDto reqDto);
	
	/**
	 * 
	 * @param taosku
	 * @return 添加供应商商品到采购单
	 */
	public List<PoPurchaseOrderGoodsDto> addGoodsToPurchaseOrder(List<String> taosku, int supplierId, int warehouseId);
	
}
